1. Field of the Invention
The present invention relates to a semiconductor memory device including a memory cell array configured of memory cells, a plurality of which is arranged respectively in a row direction and a column direction, each memory cell including a variable resistance element that stores information based on an electric operational property in which an electric resistance changes by application of electric stress.
2. Description of the Related Art
A non-volatile memory represented by a flash memory is used as a large-capacity and compact information storing medium in various fields such as computers, communications, measuring appliances, automatic controllers and living appliances used around a user, and a demand for a non-volatile memory that is cheaper and has larger capacity is extremely large. This is because it can perform a function as a memory card that can easily be carried around, or data storage or a program storage, etc. that stores initial settings for device operation such as a cell phone in a non-volatile manner, due to being capable of being electrically written and that data is not erased even when the power is turned off.
Note that, since the flash memory requires longer time for an erasing action of erasing data to a logical value “0” compared to a programming action of programming data to a logical value “1”, it is not capable of high-speed operation. In regard to the erasing action, when the erasing action is performed, although improvement in speed is attempted by performing in a unit of a few bytes or a block unit, there is a problem that a random access programming cannot be performed since the erasing action is performed in the unit of the few bytes/block unit.
Due to this, currently a new type of non-volatile memory that replaces the flash memory is being widely studied. Among such, a resistance change memory that uses a phenomenon in which a resistance change occurs due to application of a voltage to a metal oxide film is useful compared to the flash memory in regards to a scaling limit, and since it is capable of a high-speed data writing, it is frequently researched and developed in the recent years (e.g., refer to Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 2002-537627, or H. Pagnia et al., “Bistable Switching in Electroformed Metal-Insulator-Metal Devices”, Phys. Stat. Sol. (a), vol. 108, pp. 11-65, 1988, and Baek I. G. et al., “Highly Scalable Non-volatile Resistive Memory using Simple Binary Oxide Driven by Asymmetric Unipolar Voltage Pulses”, IEDM2004, pp. 587-590, 2004).
As programming/erasing properties of such a variable resistance element having the metal oxide, in a case with a driving method called bipolar switching, since the electric resistance of an element increases (high resistance state)/decreases (low resistance state) by applying voltage pulses with opposite polarity respectively to the element, it can be used as a memory by assigning a logical value as data to each electric resistance state.
As a feature of the variable resistance element having the metal oxide, it is capable of the high-speed random access programming/erasing.
For example, a case in which the random access programming/erasing is performed on the variable resistance element that stores two values of “0” and “1” will be considered. In performing the programming/erasing action regardless of the resistance state of the memory cell, an erasing action applying an erasing voltage pulse to the element in a programmed state or a programming action applying a programming voltage pulse to the element in an erased state will be appropriate actions, however, a programming action applying the programming voltage pulse to the element already in the programmed state or an erasing action applying the erasing voltage pulse to the element already in the erased state will be overwriting to the original states.
Property variability of the elements is likely to be influenced by such an operation hysteresis, and depending on the resistance state, there is a possibility that data is written due to a change in the electric resistance by the overwriting being performed. Further, when the operation hysteresis of the elements is large, the property variability between elements becomes larger, and becomes a cause of data errors.
In actually using the variable resistance elements as a memory, since there is a possibility that a programming action failure occurs due to the variability in the element properties or a variability in application voltages or application currents in the programming action, a verifying action of verifying whether or not the resistance property of the variable resistance element to which the writing action had been performed has shifted to a desired resistance distribution range will be necessary. Then, as a result of having performed the verifying action, if the programming action failure actually occurs, the programming action needs to be performed by applying the writing voltage pulse again so that the resistance property of the variable resistance element is brought to be within the desired resistance distribution range.
However, when the voltage pulse for the programming action is applied again to the variable resistance element whose resistance property is not within the resistance distribution range of the correct resistance state, since the programming action is overwriting for the variable resistance element, it cannot be programmed to the desired resistance distribution range by the electric resistance being lowered.
On the other hand, the programming property of a variable resistance element represented by a metal oxide variable resistance element exhibits a resistance hysteresis curve as in FIG. 17. FIG. 17 is a diagram showing a relationship between an absolute value of the programming voltage pulse applied to the variable resistance element and the resistance value after a change caused by the voltage pulse. As shown in FIG. 17, the resistance value increases accompanying the increase in the application voltage up to a certain programming voltage, however, the resistance value decreases accompanying the increase in the application voltage thereafter.
Accordingly, the electric resistance value greatly changes after the programming by the programming voltage applied to the variable resistance element, and for some variable resistance elements, a subtle difference in the application voltage gives rise to a great difference in the electric resistance. This applies not only to the applied programming voltages but also to applied programming currents, and the resistance value after the programming greatly changes depending on the magnitude of the applied programming currents.
As shown in FIG. 17, although the electric resistance after the writing action does not rise up to a peak value when the application voltage is low, the electric resistance is decreased when the application voltage is too high. The peak value of the electric resistance and the application voltage by which the electric resistance value is brought to its peak have element variability among the respective variable resistance elements, and even if the application voltage pulse is identical, since the variability in the voltage that is actually applied occurs for each element e.g. due to the position of the variable resistance elements within the memory cell array, it becomes difficult to program such that the resistance property after the application of the voltage pulse is brought to be within the desired resistance distribution range.